/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.pa165.rentalofconstructionmachinery.service;

import cz.muni.fi.pa165.rentalofconstructionmachinery.dto.CustomerDTO;
import java.util.List;

/**
 *
 * @author stefan.rakonjac
 */
public interface CustomerService {
    /**
     * Adds a new CustomerDTO. customerName may not be null at the
     * time of creation!
     * 
     * @param customer The Customer DTO. Must not be null!
     */
    public void addCustomer(CustomerDTO customer);
    
    /**
     * Removes CustomerDTO.
     * 
     * @param customer The Customer DTO. Must not be null!
     */
    public void removeCustomer(CustomerDTO customer);
    
    /**
     * Modifies CustomerDTO.
     * 
     * @param customer The Customer DTO. Must not be null!
     */
    public void modifyCustomer(CustomerDTO customer);
    
    /**
     * List all existing CustomerDTOs.
     * 
     * @return List of all existing Customer DTOs.
     */
    public List<CustomerDTO> getAllCustomers();
    
    /**
     * Get a particular CustomerDTO by its ID.
     * 
     * @param id Must not be null!
     * @return Null, if Customer with such ID does not exist.
     */
    public CustomerDTO getCustomerById(Long id);
}
